This invention relates to a system for transporting and broadcasting encoded audiovideo streams and, more particularly, to a piece of equipment for remultiplexing such streams, that is to say a unit to extract from a stream containing several programs the information related to specific programs and their re-organization into an output stream to be transmitted to users.
It is known that an increasing number of encoded audio-video programs (television programs in particular) are transmitted by cable or satellite. The techniques for transporting such programs are governed by international standards, among which series ETS 300 4xx ETSI standards (xe2x80x9cDigital broadcasting systems for television, sound and data services . . . xe2x80x9d) are mentioned as an example. These standards concern the transmission on the same cable or on the same satellite channel of a certain number of encoded and multiplexed programs in conformity with the procedures established by recommendation ITU-T H222 or standard ISO/IEC 13818, xe2x80x9cInformation Technologyxe2x80x94Generic Coding of Moving Pictures and Associated Audio Informationxe2x80x9d, commonly known as the MPEG2 Standard. This standard defines syntax both for encoded SPTS Single Program Transport Streams and multiplexed MPTS Multiprogram Transport Streams. The standard also specifies the rules for transporting the information on stream content, in particular the PSI/SI Program Specific Information/System Information table. Transport streams consist of 188 byte fixed-length packets that include a header and a data field or payload that can contain either elementary audio-video or table data. In its turn, the header includes a Packet Identifier (PID) whose value is univocally assigned to single elementary streams for the entire duration of a program. A special PID value identifies packets carrying a specific Program Association Table (PAT) containing the information required to
identify the Program Map Table (PMT), which in its turn contains information on the single elementary streams inside a single program. The packet header also contains synchronization information transmitted periodically, including the Program Clock Reference (PCR), which plays an interesting role within this invention.
In conventional cable or satellite broadcastings, the entire stream of multiprograms reaches the home of the user, who selects a program with a special set top box.
The audio-video business is also becoming interesting for telecommunications operators, since optical fiber-based long distance lines feature the capability required for transporting several multiprogram streams on the one hand, and the use of XDSL techniques (Cf. standard ITUT G.992 for the ADSL technique for instance) for transmission on user lines has made capabilities in the range of Mbit/s to some tens of Mbit/s available for supplying users with single audio programs or a limited number of programs on the other. Specification DAVIC 1.1 that can be consulted at Internet site www.davic.org sets the features of a possible service known as Switched Digital Video Broadcasting (SDVB) that telecommunications operators can offer users through fixed web infrastructures.
Program selection in this type of service cannot be allocated to the user unit but must be made by centralized bodies, such as access web nodes for instance, receiving user selection commands and having the capability of identifying and extracting the program elementary streams inside the multiprogram transport stream, and compressing them into a single program stream, then associating this latter with the service information required for proper user decoding and sending it to the user. These operations are completed at one or several points of the web by Broadcast Control Units (BCU) allocated to user command receipt and processing jointly with an Replication Unit (RU) receiving multiprogram streams and distributing them to individual users. The operation whereby a multiprogram stream is split into single program streams or more generally into lower capacity streams is commonly known as remultiplexing.
The devices featuring this function, if necessary jointly with the multiplexing of independent programs in a transport stream or with the addition of programs to a transport stream, are documented and available commercially. U.S. Pat. No. 5,835,493 is mentioned as an example, which describes in detail the problems associated with the remultiplexing of transport streams of the TokenMux unit produced by the Philips Company of Eindhoven, Holland.
The creation of a switched video transmission service further requires adapting MPEG transport streams from service suppliers to the transport technique adopted on the web. A convenient and nearly natural choice for transport is using the ATM technique by inserting each program into a virtual channel. In particular, the choice was made to use the so-called ATM Adaptation Layer level AAL5 defined in ITU-T Recommendation 1.363. In transferring program packets to ATM virtual channels the need arises to check that the peak band for each channel on each of these lines does not exceed the band available on the line itself (typically 8 Mbit/s if an ADSL connection is used). This requires control, known as shaping or leveling, of output streams to level off traffic peaks.
Known remultiplexing devices do not provide direct remultiplexing of MPEG transport streams into ATM virtual channels and the purpose of the invention is to supply an unit capable of transferring an MPEG multiprogram transport stream to an ATM virtual channel and multiplexing virtual channels into virtual itineraries, bearing the band control needs mentioned above in mind.
The invention provides equipment for remultiplexing encoded audio-video streams transmitted within a switched digital video broadcasting system, each containing multiple programs (multiprogram transport streams), in which program information is transmitted in packets each including a packet identifier supplying information as to the program identity the packet refers to and a payload containing program data or stream structure service information. This equipment comprises syntactical analysis and reception means-circuits (AS; FLI . . . FLn, MSI . . . MSn) suitable to receive a plurality of such streams, separate in each flow packets which can be forwarded directly to
output stream generation means (CF; AA, MC, TU), from packets which must be forwarded to the said control device (MP) to be submitted to processing, in particular for updating service information to reflect the composition of output streams. Means (ME) for temporary storage of data packets is provided separately for each input stream.
The output stream generation means circuits (CA; AA, MA, TU) generates and sends to users output streams obtained starting from the packets stored in such said temporary memories (ME) and from the processed service packets, such output streams being single or multi-program streams at a lower band than input streams.
The control device (MP) is suitable to receive the service packets from syntactical analysis and reception means (AS; FL1 . . . FLn, MS1 . . . MSn), to identify individual streams making up the multiprogram streams, to perform updating of service information and drive temporary memory means (ME) and output stream generation means-circuits (CF; AA, MC, TU) so as to enable the creation of single or multi-program streams for different users.
According to the invention such output stream generation means (CA; AA, MA, TU) are suitable to create ATM streams by transferring packets related to the same program or group of programs to ATM cells related to one or more virtual channel and multiplexing such virtual channels into multiple itineraries each containing programs of the same input stream. The output stream generation means circuits (CF; AA, MC, TU) is suitable to perform, during ATM stream generation, a two-step control of the band associated to each ATM stream by reading the packets allocated to different virtual channels in such a fashion as to limit the peak band of each virtual channel to a first programmable value not exceeding the band available on ATM stream transport lines and by performing statistical multiplexing of the virtual channels into virtual itineraries and such that the overall band transmitted to each virtual itinerary does not exceed the peak band available for the itinerary. The temporary memory means (ME) are suitable to store data packets in individual logical queues for a program or group of programs managed by connected lists of pointers each identifying a memory area containing a packet replicated as many times as the number of virtual channels into which a packet is to be entered.
The syntactical analysis and reception means (AS; FLI . . . FLn, MSI . . . MSn) include a group of first memory units (MRI . . . MRn), one for each input stream, suitable for storing for each respective stream a first control word inclusive of a first field containing information on packet validity, a second field active for a valid packet and indicating if the packet is a service or a data packet, and a third field indicating for each data packet into which logical queues it is to be entered, such first control words being prepared and updated by the control device (MP) through continued analysis of the service information contained in the packets supplied to such device (MP) and being read by the input interfaces (FLI . . . FLn) belonging to such said syntactical analysis and reception means (AS; FL1 . . . FLn, MS1 . . . MSn) and each being associated to one of the input streams and therefore to one of the said first memories (MR1 . . . MRn).
These memory means includes and data memory (MD1 . . . MDn) for each input stream and a memory controller (CM1 . . . CMn) for each data memory (MD1 . . . MDn), suitable to dynamically distribute storage capacity among the various logical queues through this management of connected pointer list and inclusive of:
a second memory unit (FF) allocated to store pointers for writing in the free areas of the respective data memory (MD1 . . . MDn) and to issue an indication of the first free pointer based on information received from output stream generation means circuits(CF; AA, MC, TU);
a replication unit (UR), receiving the third control word field from the input interface (FLI . . . FLn) and pointers from the second memory (FF), and replicating a pointer and its related writing command as many times as the number of queues on which a data packet is to be entered;
a logical queue management unit (QM) receiving and storing pointers from this UR replication unit and issuing them at input on request by the output stream generation means (CF); and
a pointer freeing control unit (FP) receiving from this replication unit (UR) and storing the identity of the pointers associated to information on the code number associated to a pointer, receiving a message of having read data memory (MD1 . . . MDn) identified by a given pointer from output stream generation means circuits (CF; AA, MC, TU) and suitable to count such reading messages and to issue a free pointer signal once the number of completed readings in the data memory (MD1 . . . MDn) identified by that given pointer is equal to the number of queues for which the pointer is to be used.
The output stream generation means (CF; AA, MC, TU) can include the following:
a third memory unit (TU) that temporarily stores updated service packets supplied by the-said control device (MP) split into as many memory areas as the output virtual itineraries, including, for each area, as many positions as the logical queues completed in such temporary memory meansxe2x80x94(ME);
a fourth memory unit (MC) storing a list of second control words each associated to an active virtual channel and containing the input stream identifier and a logical queue of packets to be served at all ATM cell times, the word related to a given virtual channel being entered in the list with a repetition frequency such as to originate, at a given list scanning rate, a peak band not above the said programmable first value; and
a packet segmentation unit (AA) that based on the information contained in such said fourth memory unit (MC) is suitable to read from such said data memories (MD1 . . . MDn) data service packets containing updated service information from the said third memory unit (TU), to enter the payload of pairs of packets in a group of ATM cells and to associate a header to each ATM cell and a trailer to each cell group.
The (AA) means (Packet segmentation unit) can include the following:
a first logical network (GD) for managing the dialog between output stream generation means-circuits.(CF) and memory controllers (CMI . . . CMn), suitable to receive such second control words from the fourth memory unit (MC), request the logical queue management unit (QM) to supply the pointers corresponding to the queues to be read and to construct for each virtual output itinerary a list of third control words each containing the corresponding second control word, information indicating whether such said second control word is associated to a service or a data packet, the pointer in case of a data packet and the position of an ATM cell being prepared inside the group of cells where a pair of packets is entered;
a group of fifth memory units (PQ) each suitable to store a list of such third control words; and
as-third logical network (DR) for managing requests for packets, suitable to receive the lists of such said third control words, to generate and issue based on information contained in each of such third control words, either the data memory (MD1 . . . MDn) reading addresses corresponding to the source list of such third control word or the third memory unit (TU) reading addresses and to issue such signal of completed reading to a data memory area after reading a pair of packets.
The fifth memory units (PQ) are driven by the said control device (MP), suitable to establish the reading frequency of the third control words inside each list.
The apparatus can include means (CRI, CR2) for updating the value of timing information for each program, present in packets pre-set by the program itself, so as to take account of the variable time for traversing the equipment (RM) by the packets, such updating means-circuits (CR1, CR2) being suitable to calculate a unit traversing time by a packet containing such information, using a clock signal having the same frequency as the system clock signal and generated by an internal oscillator (OL) inside the equipment (RM), to add such time to the value of the said timing information contained in a packet received and entering the resulting total to the packet before sending it to the equipment (RM) output.
The updating means (CR1, CR2) can include a first unit (CR1) belonging to input interface (FLI . . . FLn) and suitable to calculate a preprocessed value of such timing information, represented by the difference between the value contained in the packet received and the value of the instant of the arrival of such packet and to replace it for the values contained in the packet received while this packet travels in the said interface and a second unit (CR2) belonging to the packet segmentation unit (AA) suitable to replace the pre-set value contained in the packet, while traveling inside the same segmentation means, with an updated value represented by the summation of the pre-set value with a value of the packet output instant, the values of the input and output instants being calculated by counters of the first and respectively second units (CR1, CR2), by using the signals of the mentioned local oscillator.
The timing information can be composed of a first part, which evolves at the frequency of said system clock signal, and of a second part, which evolves at a submultiple frequency of the frequency of said system clock signal. The first and second units (CR1, CR2) can calculate a first and a second part of the value of the input and output instants of a packet containing such information and generate as a consequence a first and a second part of the preprocessed value and of the correct value respectively.
The input interfaces (FL]. Fin) can include means (MX2) to receive as an alternative to the said transport streams test streams generated by the mentioned control device (MP) and can also forward test stream packets to the control device (MP) through the mentioned memory means (ME) and said output stream generation devices or through a buffer memory (MT) that temporarily stores the transport stream service packets.